package com.example.iot.service.core;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.iot.entity.EntityRelation;
import com.example.iot.entity.RuleChain;
import com.example.iot.entity.RuleNode;
import com.example.iot.entity.dto.RuleChainMetaData;
import com.example.iot.entity.po.RuleChainPO;
import com.example.iot.entity.id.RuleChainId;
import com.example.iot.entity.id.RuleNodeId;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ChenXiangpeng
 * @since 2021-02-26
 */
public interface RuleChainService {

    RuleChainMetaData loadRuleChainMetaData(RuleChainId ruleChainId);

    void saveRuleChainMetaData(RuleChainMetaData ruleChainMetaData);

    RuleChain findRuleChainById(RuleChainId ruleChainId);

    List<RuleNode> getRuleChainNodes(RuleChainId entityId);

    List<EntityRelation> getRuleNodeRelations(RuleNodeId id);

    RuleNode findRuleNodeById(RuleNodeId entityId);
}
